![]() ![]() |
Q: GDB を使用してアプリケーションをデバッグしようとすると、デバッグ対象のコードの妨げとなってデバッグできません。どうしすればよいでしょうか。 A: 2 つのアプリケーション間でのドラッグ&ドロップ操作、複雑な有効化/無効化/更新の操作、画面全体をグラブするアプリケーションなどのデバッグを実行しようとすると、このような状況に陥る可能性があります(ここで挙げた例は、一部に過ぎません)。これらの状況において、GDB を表示するウインドウは(Project Builder 内であるか Terminal 内であるかを問わず)デバッグ対象のコードの妨げとなります。この問題のきわめて有効な解決方法は、コンピュータ 2 台編成でデバッグすることです。別名、リモートデバッグといいます。これは、Macintosh をもう 1 台用意して、2 台のコンピュータを同一のネットワークに接続するだけでできます。
1) デバッグ対象の 1 つまたは複数のアプリケーションが入っているターゲットの Macintosh において、システム環境設定の「共有」パネルを使用して「リモートログイン」を有効にします。このサービスを有効にすると、接続に必要なコマンドライン情報を示すメッセージ(たとえば、「ssh yourname@yournetwork.com」と入力)が表示されます。
2) 制御側の Macintosh において、Terminal アプリケーションを起動し、デバッグ対象アプリケーションの数と同じ数だけウインドウを開きます(ドラッグ&ドロップのデバッグの場合には 2 つ、それ以外の場合には 1 つ)。 3) まず各ウインドウで、「共有」ペインで得たコマンドライン情報を入力して、ssh を使用してターゲットの Macintosh に接続します(ユーザ名に対応するパスワードの入力を求められます)。次に、GDB を起動し(起動されるのはターゲットコンピュータの GDB ツールです)、アプリケーションを実行するか、またはアプリケーションの pid にアタッチします(詳細については GDB のマニュアルを参照してください)。デバッグ対象アプリケーションのシンボルファイルを使用することもできます(この詳細についても、GDB のマニュアルを参照してください)
4) デバッグが終了したら、GDB と Terminal を忘れずに終了します。また、もうデバッグの必要がなければ、ターゲットの Macintosh のリモートログインサービスを無効にします。 [2003 年 9 月 9 日] |